package cn.yc.file;

import org.junit.jupiter.api.Test;

import java.io.File;
import java.io.IOException;
import java.util.Date;

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="ddAllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
    public static void main(String[] args) {

    }

    /**
     * 方式一
     * File(String pathName)
     */
    @Test
    public void create01() {
        String filePath = "e:\\io\\new1.txt";
        File file = new File(filePath);
        try {
            boolean newFile = file.createNewFile();
            System.out.println("是否成功创建：" + newFile);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * 方式二：父目录文件 + 子路径
     * File(File parent, String child)
     */
    @Test
    public void create02() {
        File parent = new File("e:\\io\\");
        String fileName = "news2.txt";
        File file = new File(parent, fileName);
        try {
            file.createNewFile(); // 在磁盘创建该文件
            System.out.println("是否成功创建：" + file.exists());
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * 根据父目录 + 子路径创建
     */
    @Test
    public void create03() {
        String parentPath = "e:\\io\\"; // 两个斜杠是转义字符
        String fileName = "news3.txt";
        File file = new File(parentPath, fileName);
        try {
            file.createNewFile();
            System.out.println("是否成功创建：" + file.exists());
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    @Test
    public void info(){
// 先创建文件对象
        File file = new File("e:\\io\\news2.txt");
        // 调用相应的方法，得到对应信息
        //getName、getAbsolutePath、getParent、Length、exists、isFile、isDirectory
        System.out.println("文件名：" + file.getName());
        // 获取绝对路径
        System.out.println("绝对路径：" + file.getAbsolutePath());
        System.out.println("父级目录：" + file.getParent());
        System.out.println("文件大小(字节）：" + file.length()); // 一个汉字是三个字节
        System.out.println("文件是否存在：" + file.exists());
        System.out.println("是否是文件：" + file.isFile());
        System.out.println("是否是目录：" + file.isDirectory());
        System.out.println("是否可读：" + file.canRead());
        System.out.println("是否可写：" + file.canWrite());
        System.out.println("是否隐藏：" + file.isHidden());
        System.out.println("创建时间：" + file.lastModified());
        System.out.println("文件最后修改时间：" + file.lastModified());
        System.out.println("文件最后修改时间：" + new Date(file.lastModified()));
    }

}